﻿

/**
 * 
 * @class
 */
TextStream = function () {
	
	/**
	 * 关闭文件
	 */
	this.Close = function() {}
	
	/**
	 * 读取字符串
	 * @param Number characters 字符数量
	 * @return String
	 */
	this.Read = function(characters) {}
	
	/**
	 * 读取全部内容
	 * @return String
	 */
	this.ReadAll = function() {}
	
	/**
	 * 读取一行
	 * @return String
	 */
	this.ReadLine = function() {}
	
	/**
	 * 跳过指定的字符数量
	 * @param Number characters 字符数量
	 */
	this.Skip = function(characters) {}
	
	/**
	 * 跳过一行
	 */
	this.SkipLine = function() {}
	
	/**
	 * 写入字符串
	 * @param String string 字符串
	 */
	this.Write = function(string) {}
	
	/**
	 * 写入空行
	 * @param String lines 行数
	 */
	this.WriteBlankLines = function(lines) {}
	
	/**
	 * 写入一行
	 * @param String string 字符串
	 */
	this.WriteLine = function(lines) {}
}

/**
 * @class
 */
WScript = function() {

	/**
	 * 启动参数数组
	 * 
	 * @type Array
	 * @return Array
	 */
	this.Arguments = null;

	/**
	 * Windows Script Host的版本号
	 * 
	 * @type Number
	 */
	this.BuildVersion = 0;

	/**
	 * 脚本执行程序的完全路径
	 * 
	 * @type String
	 */
	this.FullName = "";

	/**
	 * 返回脚本执行程序的名称
	 * 
	 * @type String
	 */
	this.Name = "";

	/**
	 * 包含脚本程序名称的目录名
	 * 
	 * @type String
	 */
	this.Path = "";

	/**
	 * 脚本文件的全路径
	 * 
	 * @type String
	 */
	this.ScriptFullName = "";

	/**
	 * 脚本文件的文件名
	 * 
	 * @type String
	 */
	this.ScriptName = "";

	/**
	 * 标准错误输出流
	 * 
	 * @type TextStream
	 * @return TextStream
	 */
	this.StdErr = new TextStream();

	/**
	 * 标准输入流
	 * 
	 * @type TextStream
	 * @return TextStream
	 */
	this.StdIn = new TextStream();

	/**
	 * 标准输出流
	 * 
	 * @type TextStream
	 * @return TextStream
	 */
	this.StdOut = new TextStream();
	
	/**
	 * 输出信息
	 * @param String msg 消息
	 * @return String
	 */
	this.Echo = function(msg) {};

	/**
	 * 立即退出脚本
	 * 
	 * @param Number
	 *            intErrorCode 错误码
	 */
	this.Quit = function(intErrorCode) {}

	/**
	 * 休眠
	 * 
	 * @param Number
	 *            intTime
	 */
	this.Sleep = function(intTime) {}

}


/**
 * @class
 */
WshEnvironment = function() {

}

/**
 * @class
 */
WshShortcut = function() {
	
}

/**
 * @class
 */
WshScriptExec = function() {
	
	/**
	 * 退出码
	 */
	this.ExitCode = 0;
	
	/**
	 * 进程ID
	 */
	this.ProcessID = 0;
	
	/**
	 * 状态
	 * <ul>
	 *   <li>0:执行中</li>
	 *   <li>1:已完成</li>
	 * </ul>
	 */
	this.Status = 0;
	
	/**
	 * 标准错误输出流
	 * @type TextStream
	 * @return TextStream
	 */
	this.StdErr = new TextStream();
	
	/**
	 * 标准输入流
	 * @type TextStream
	 * @return TextStream
	 */
	this.StdIn = new TextStream();
	
	/**
	 * 标准输出流
	 * @type TextStream
	 * @return TextStream
	 */
	this.StdOut = new TextStream();
}


/**
 * WshShell
 * @class
 */
WshShell = function() {
	
	/**
	 * 当前目录
	 */
	this.CurrentDirectory = "";
	
	/**
	 * 环境
	 * @param String type 类型
	 * <ul>
	 *   <li>System</li>
	 *   <li>Process</li>
	 * </ul>
	 * @return WshEnvironment
	 */
	this.Environment = function(type) {
		
	}
	
	/**
	 * 返回各种系统文件夹
	 * @param String name 可以是以下值:
	 * <ul>
	 *   <li>AllUsersDesktop</li>
	 *   <li>AllUsersStartMenu</li>
	 *   <li>AllUsersPrograms</li>
	 *   <li>AllUsersStartup</li>
	 *   <li>Desktop</li>
	 *   <li>Favorites</li>
	 *   <li>Fonts</li>
	 *   <li>MyDocuments</li>
	 *   <li>NetHood</li>
	 *   <li>PrintHood</li>
	 *   <li>Programs</li>
	 *   <li>Recent</li>
	 *   <li>SendTo</li>
	 *   <li>StartMenu</li>
	 *   <li>Startup</li>
	 *   <li>Templates</li>
	 * </ul>
	 * @return String
	 */
	this.SpecialFolders = function(name){}
	
	/**
	 * 激活程序窗口
	 * @param String title 窗口标题
	 * @return Boolean 是否成功激活
	 */
	this.AppActivate = function(title) {}
	
	/**
	 * 创建快捷方式
	 * @param String path 路径
	 * @return WshShortcut
	 */
	this.CreateShortcut = function(path) {}
	
	/**
	 * 执行命令行命令
	 * @param String command 命令
	 * @return WshScriptExec
	 */
	this.Exec = function(command) {}
	
	/**
	 * 展开环境变量
	 * @param String macro 变量,例如 %WinDir%
	 * @return String
	 */
	this.ExpandEnvironmentStrings = function(macro) {}
	
	/**
	 * 添加日志
	 * @param Number type 日志类型
	 * <ul>
	 *   <li>0:成功</li>
	 *   <li>1:失败</li>
	 *   <li>2:警告</li>
	 *   <li>4:信息</li>
	 *   <li>8:审核成功</li>
	 *   <li>16:审核失败</li>
	 * </ul>
	 * @param String message 日志内容
	 * @param String target [可选]日志存储目标
	 * @return String
	 */
	this.LogEvent = function(type, message, target) {}
	
	/**
	 * 弹出一个信息窗口
	 * @param String text 内容
	 * @param Number timeout [可选]显示时间,单位秒,0则永久显示
	 * @param String title [可选]标题
	 * @param Number type [可选]窗口类型
	 * <ul>
	 *   <li>按钮:[0=OK][1=OK,Cancle][2:Abort,Retry,Ignore][3:Yes,No,Cancle][4:Yes,No][5:Retry,Cancel][6:Cancel,Try Again,Continue]</li>
	 *   <li>图标:[0x10=Stop][0x20=Question][0x30=Exclamation][0x40=Information]</li>
	 * </ul>
	 * @param String message 日志内容
	 * @param String target [可选]日志存储目标
	 * @return String
	 * <ul>
	 *   <li>-1:超时</li>
	 *   <li>1:OK</li>
	 *   <li>2:Cancel</li>
	 *   <li>3:Abort</li>
	 *   <li>4:Retry</li>
	 *   <li>5:Ignore</li>
	 *   <li>6:Yes</li>
	 *   <li>7:No</li>
	 *   <li>10:Try Again</li>
	 *   <li>11:Continue</li>
	 * </ul>
	 */
	this.Popup = function(text, timeout, title, type) {}
	
	/**
	 * 删除注册表键
	 * @param String name 名称,例如 HKCU\Software\ ,
	 * <ul>
	 *   <li>HKEY_CURRENT_USER = HKCU</li>
	 *   <li>HKEY_LOCAL_MACHINE = HKLM</li>
	 *   <li>HKEY_CLASSES_ROOT = HKCR</li>
	 *   <li>HKEY_USERS = HKEY_USERS</li>
	 *   <li>HKEY_CURRENT_CONFIG = HKEY_CURRENT_CONFIG</li>
	 * </ul>
	 */
	this.RegDelete = function(name) {}
	
	/**
	 * 读取注册表值
	 * @param String name 名称,例如 HKCU\Software\ ,
	 */
	this.RegRead = function(name) {}
	
	/**
	 * 写入注册表值
	 * @param String name 名称,例如 HKCU\Software\ ,
	 * @param Object value 值
	 * @param type String 类型
	 * <ul>
	 *   <li>REG_SZ</li>
	 *   <li>REG_EXPAND_SZ</li>
	 *   <li>REG_DWORD</li>
	 *   <li>REG_BINARY</li>、
	 * </ul>
	 */
	this.RegWrite = function(name, value, type) {}
	
	/**
	 * 运行程序
	 * @param String command 名称
	 * @param Number windowStyle 程序的窗口效果
	 * <ul>
	 *   <li>0:隐藏窗口</li>
	 *   <li>1:显示或还原窗口</li>
	 *   <li>2:最小化显示</li>
	 *   <li>3:最大化显示</li>、
	 * </ul>
	 * @param Boolean waitOnReturn 等待返回
	 * @return Number 错误码
	 */
	this.Run = function(command, windowStyle, waitOnReturn) {}
	
	/**
	 * 对激活的窗口发送键盘消息
	 * @param String key 字符
	 */
	this.SendKeys = function(key) {}
}